package com.my.commons.database.dao;

public interface DAO {
	/**
     * Unique identifier for DAO class, all subclasses must have same identifiers. Must return {@link Class#getName()}
     * of abstract class
     *
     * @return identifier of DAO class
     */
    public String getClassName();

    /**
     * Returns true if DAO implementation supports database or false if not. Database information is provided by
     * {@link java.sql.DatabaseMetaData}
     *
     * @param databaseName name of database
     * @param majorVersion major version of database
     * @param minorVersion minor version of database
     * @return true if database is supported or false in other case
     */
    public boolean supports(String databaseName, int majorVersion, int minorVersion);
}
